home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 2
/
SPACE - Library 2 - Volume 1.iso
/
apps
/
82
/
tutorc.fra
< prev
next >
Wrap
Text File
|
1986-11-20
|
8KB
|
176 lines
0660103030566
9[....................................................]
ü
C,LELANGAGEë
Ç
BienvenueàcettepremièreleçonsurlelangageC.Cette
séried'articlesseveutuneméthoded'apprentissagepourle
néophiteenC.Jeprendraitoutefoispouraquisquelelecteura
quelqueexpérienceenprogrammationetqu'ilconnaitcertaines
notionstellesquelesboucles,lesexpressionsconditionnelles,
etc.
Unepremièremiseengarde.LelangageCn'estpasunlangage
facile.C'estunlangagesouple,générantuncodecompactet
rapidemaisilesttrèsdifficileà'débugger'.Lesmessages
d'erreurs,quandilyena(...),nesontpastrèssignificatifs
etpeuventreféreràdesinstructionscorrectes(l'erreurréelle
pouvantêtreàpeuprèsn'importeou...)
Unedeuxièmemiseengarde.LeCquiexisteactuellementsur
leSTestunlangageücompiléÇ.C'estadirequ'iln'estpas
directementexécutablecommelesontleüSTBASICÇouleüLOGOÇ
d'üAtariÇ(cesontdeslangagesinterprétés).Vousnepouvezpaspar
exempletaperunelignedecodeetvoir(ouavoir)immédiatement
soneffet.Plusieursétapessontnécessairesavantdepouvoir
accéderauprogramme.Trouverlesbonnesétapes,lesexécuterdans
l'ordre,voilàquiprendradanslespremiersessaisplusdetemps
qued'écrireleprogrammelui-même.
Sicetteintroductionnevousaspasdécouragés,vousêtes
prêtspourunpremieressai.
Ilvousfautd'abordunéditeurdeprogramme.Plusieurssont
disponiblessurlemarché:üMinceÇouüMicro-EmacsÇ,oubienplus
simplementuntraitementdetextecommeü1st-WordÇ.Aveccedernier
ilfautprendrelaprécautiondenepassélectionnerlemodeWP,
carilinsèredanslecodedescaractèresdecontrôlequine
serontpasreconnuspaslecompilateur.
Tapezleslignessuivantes:
ü
#include"osbind.h"
main()
{
Cconws("VoilàmonpremierprogrammeenC");
Cconin();
}
Ç Sauvegardezcetextesouslenomdefichier"üPREMIER.CÇ"
Analysonsmaintenantceprogrammeendétail.Lapremière
ligneü#includeÇü"osbind.h"Çcontientlecaractère#.Cesymbole
annonceaucompilateurunecommande'préprocesseur'.Ilnedoit
êtreutiliséquedanscebut(àmoinsdeparaîtreàl'interieur
d'unephraseentreguillemets).LacommandepréprocésseurüincludeÇ
apourbutd'incluredanslecodelefichierüosbind.hÇ.Cefichier
contientlesdéfinitionsdesfonctionsüCconwsÇetüCconinÇdu
programme,etdefaçonplusgénéraleilcontientlesdéfinitions
dusystèmed'exploitationüCPM-68KÇ.Cetypedefichier,contenant
desdéfinitionsestcaractériséparsonextentionü.hÇ.Parexemple
lesfichiersüvdibind.hÇetüaesbind.hÇsontlesdéfinitionsduüVDIÇet
üAESÇ;cesontlespointsd'entréesduüGEMÇ.Noterquelenomdu
fichieràincluredoitêtreenguillemets.
LadeuxièmeüÇligne,ümain()Ç,indiqueaucompilateurque
l'exécutionduprogammedoitdébuteràcetendroit.Lafonction
ümain()Çpeutêtreenfaitn'importeoudansletexte.EnüCÇ,
exeptionsfaitesdescommandespréprocesseurs,iln'existequedes
fonctions.Fontionsquifontappelàd'autresfonctionsquifont
appelàdesfonctionsencore,etc...Lapremièrefonctionàêtre
exécutéeesttoujoursümain()Ç,mêmesiellen'estpaslapremièreà
paraîtredansletexte.
Unefonctionsedistingueparlaprésencedeparenthèsesqui
suiventtoujourslenomdelafontion.Cesparenthèsescontiennent
leoulesargumentsdelafonction.Lafonctionümain()Çneprend
aucunargument,lesparenthèses(obligatoires)sontdoncvides.La
fonctionüCconwsÇprendunargument,laphraseü"Voilàmonpremier
programmeenC"Ç,cettefontionvaaffichercetteligneàl'écran,
àlapositioncouranteducurseur,icilecoinsupérieurgauche
(Cconwsestl'abréviationde'üconsolewritestringÇ').Les
guillemetsdélimitantlaphrasesontnécessaires,demêmequele
pointvirgulequiterminelaligneüCconws("Voilamonpremier
programmeenC");ÇL'absencedecetteponctuationentraîneraun
messaged'erreuràlacompilation. Lepointvirguleestce
qu'onappelleenjargoninformatiqueundélimiteur.Ilpréciseque
toutcequileprécèdejusqu'aupointviguleantérieuroujusqu'au
débutdelafonctionestuneinstructioncomplèteparelle-même,
lepointvirguledélimitantlecorpsdel'instructionquile
précède.
L'instructionsuivanteüCconin();Çattendqu'uncaractère
quelconquesoittapéauclavier,etl'afficheàl'écran(sic'est
uncaractèreASCIIaffichable).üCconinÇestl'abréviationde
'üconsoleinputÇ'.Ilexisteunefontionquifaitlemêmetravail,
maissansafficherlecaractère,c'estüCnecin()Ç.Cettedernière
doitêtreutiliséepourunepauseàl'intérieurd'unprogramme,
parexemple.
Aladernièreligneonretrouveuneaccoladefermante,'ü}Ç'
celleciesttoujoursjumelléeàuneaccoladeouvrante'ü{Ç'.Elles
serventàdélimiterlechampdelafonctionümain()Ç,'ü{Ç'marquant
ledébutdelafonctionet'ü}Ç'lafin.Ellesontlamêmeutilité
danslestestsavecüWHILEÇouüIF-THEN-ELSEÇcommenousleverrons
ultérieurement.
Ilnousrestemaintenantà"compiler"ceprogramme.La
compilationestleprocédéparlequelontransformeletextedu
programmeeninstructionsbinaires(i.e.langagemachine)etplace
cesinstructionsenunfichier,avecsuffixeü.PRGÇ.Cefichierest
directementexécutable,c-a-dqu'ilnerequiertaucunautre
fichierpourfonctionner(paroppositionàunprogrammelogo,par
exemple,quiabesoindeüLOGO.PRGÇpourfonctionner).
Lesétapesdelacompilationvarientd'uncompilateurà
l'autre.PourlecompilateurduüTOOLKITÇ,lesétapessontles
suivantes:
üCP68KPREMIER.CPREMIER.I
C068PREMIER.IPREMIER.1PREMIER.2PREMIER.3-F
C168PREMIER.1PREMIER.2PREMIER.S
AS68-L-UPREMIER.SÇ
üLINK68[U]PREMIER.68K=APSTARTÇ,üPREMIER,GEMLIBÇ
ü RELMODPREMIERÇ
LesquatrespremièresétapesproduisentlefichierüPREMIER.SÇ,
c'estlecodeassembleur(selonlescodesmémotecniquesüMotorolaÇ),
lesdeuxdernièresvontdonnerlefichierdésiréüPREMIER.PRGÇ
Lesnomsdudébutdechaqunedesquatreslignesci-dessus
correspondentàunfichierdeladisquette"üCompilerDiskÇ"et
pourlesdeuxdernières,àladisquette"üLinkerDiskÇ".Vousdevez
exécutercesprogrammesenentrantlesparamètresquisuiventle
nomdanslaligne,delafaçonsuivante:'cliquer'unefoislenom
duprogramme,sélectionnerdansüOPTIONSÇ(delabarredemenus),
üInstallApplicationÇetécrirelesparamètresrequis.
Unedeuxièmeméthodeconsisteàappelerleprogrammne
üCOMMAND.PRGÇ(ilestsurchacunedesdisquettesmentionnées)et
écrirelalignecommeci-dessus.
Unetroisièmeméthode,laplusutilisée,faitappelau
fichier.üBATÇ.Cesfichierscontiennentl'équivalentdeslignesci-
dessus.ParexemplelefichierüC.BATÇcontientlesquatres
premièreslignesci-dessus;onexécutelefichierüC.BATÇen
appelantleprogrammeüBATCH.PRGÇetenécrivantüCPREMIERÇ(etnon
üC.BATPREMIER.CÇcommel'onauraitpus'yattendre...).Pourles
deuxdernièreslignes,appelerüBATCH.PRGÇaveclesparamètresüLINKC
PREMIERÇ(lenomdecederniervarieselonlaversionduüTOOLKITÇ).
C'estmaintenantterminé,votrepremierprogrammeapparait
souslenomüPREMIER.PRGÇ.Essayez-le...Alaprochaineleçonnous
verronscommentutiliserlesbouclesetlesexpressions
conditionnelles.
ü ëAlainBirtzÇ